Various forms of storage systems are used today. These forms include direct attached storage (DAS) network attached storage (NAS) systems, storage area networks (SANs), and others. Network storage systems are commonly used for a variety of purposes, such as providing multiple clients with access to shared data, backing up data and others.
A storage system typically includes at least a computing system executing a storage operating system for storing and retrieving data on behalf of one or more client computing systems (may just be referred to as “client” or “clients”). The storage operating system stores and manages shared data containers in a set of mass storage devices.
QOS is used in a storage environment to provide certain throughput in processing input/output (I/O) requests, a response time goal within, which I/O requests are processed and a number of I/O requests processed within a given time (IOPS), for example, in a second. The term IOPS as used herein denotes an average number of I/O requests that are processed in any unit of time and not necessarily a “second”. Throughput means an amount of data transferred within a given time in response to the I/O requests, for example, in megabytes per second (Mb/s). Different QOS levels may be provided to different clients depending on client service levels.
To process an I/O request to read and/or write data, various resources are used within a storage system, for example, network resources, processors, storage devices and others. The different resources perform various functions in processing the I/O requests.
As storage systems continue to expand in size and operating speeds, especially in the cloud computing and storage environment, it is desirable to efficiently monitor resource usage within the storage system and analyze QOS data so that any incidents based on not meeting QOS target goals can be identified and handled appropriately. Continuous efforts are being made to efficiently monitor and analyze QOS data.